Skip to main content

CNC 事例16: プロービング機能 (残り距離をクリア) (G31)

を参照してください CNC16_G31.project のインストールディレクトリにあるサンプルプロジェクト CODESYS 下に ..\CODESYS SoftMotion\Examples

サンプルプロジェクトでは、プロービング機能 (残り距離をクリア) の使用方法を示しています。

この例では、マシンはライトバリアに達するまでX方向に移動します X=50。光の障壁に達するとすぐに、機械は停止しなければなりません。残りのGコードは、この位置から処理を開始する必要があります

アプリケーションの構造

この構造はCNCアプリケーションでは一般的です。G コードはバックグラウンドタスクで読み込まれますPathTask)。このタスクではパスの前処理も行われます。補間はバスタスク () で行われます。MainTask)。

次のGコードが使用されています。ブロック内 N10、迅速な位置決めが行われます X = 20。そして、G31 (プロービング機能:残った経路をクリア) で、次のような動きをします X = 100。最後に、ブロックで N30、直線的な動きが作られます X = 20, Y = 50

N10 G0 X20 F100 E1000 E-1000
N20 G31 X100
N30 G1 X20 Y50

補間器とインタプリタ間の相互作用は、プロービング機能にとって特に重要です(残りの経路をクリア)。

  1. インタープリターはGコードをデコードし、次のコードから直線を生成します X=20X=100 ブロック用 N20。その後、デコードを停止します

  2. インターポレータは直線運動を行い、同時にプローブ番号を出力します udiActProbe。G31 の場合、サンプル番号は常に 1 です

  3. アプリケーションでは、補間器は次のように停止します。 bQuick_Stop ドライブが位置を超えて移動するとすぐに X=50。(これはライトバリアをシミュレートします。

    _sm_img_example_cnc16_1.png
  4. バスタスクでは、 SMC_SetInterpreterStartPosition ファンクションブロックは、マシンの現在位置を継続的にコピーするために使用されます。

    _sm_img_example_cnc16_2.png
  5. の中に PathTask、開始位置が入力に割り当てられます。 SMC_NCInterpreter.piStartPosition:

    inter(
        sentences:= read.sentences,
        bExecute:= read.bExecute,
        nSizeOutQueue:= SIZEOF(bufIpo),
        pbyBufferOutQueue:= ADR(bufIpo),
        piStartPosition:= Main.setStart.StartPos);
  6. 補間器が停止するとすぐに、 bAcknProbe 入力は G31 コマンドの確認に使用されます。実際のアプリケーションでは、この時点で軸が実際に停止位置に達したかどうかも確認する必要があります。は SMC_InPosition これにはファンクションブロックを使用できます。

    _sm_img_example_cnc16_4.png
  7. これにより、インタープリターはデコードを再開しますが、開始位置が更新され、次のブロックになります N30 位置から開始されます。 X=55.5

次の図は、これらのステップを示しています。括弧内の数字は、上で説明したプロセスの対応するステップを示しています。

_sm_img_example_cnc16_5.png

コミッショニング

  1. アプリケーションをビルドし、コントローラーにダウンロードします。

  2. トレースを開き、コントローラにダウンロードします。

  3. アプリケーションを起動し、ビジュアライゼーションを開きます。